package com.uwo.house.dao;

import com.uwo.house.beans.request.InfoAboutReq;
import com.uwo.house.beans.request.SupplierPartnerReq;
import com.uwo.house.beans.response.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * Created by cyn1c on 2017/8/19.
 */
@Repository
public interface AdministratorDao {
    int addInfo(InfoAboutReq infoAboutReq);

    void deleteAbout();

    void deleteServiceFlow();

    List<InfoAboutResp> getCompanyAbout();

    int addServiceFlow(String flowPic);

    String getServiceFlow();

    int addDeliverCompany(String deliverCompany);

    int deleteDeliverCompany(int id);

    List<DeliverCompanyResp> getDeliverCompany(@Param("deliverCompany") String deliverCompany);

    int addMoneySet(@Param("deposit")BigDecimal deposit, @Param("reward") BigDecimal reward);

    void deleteMoneySet();

    int addSupplierPartner(SupplierPartnerReq supplierPartnerReq);

    int deleteSupplierPartner(int id);

    List<SupplierPartnerResp> getSupplierPartnerList();

    int modifySupplierPartner(SupplierPartnerReq supplierPartnerReq);

    int getRewardMoney();

    BigDecimal getDepositMoney();

    List<MaterialOrderResp> getMaterialOrderList(@Param("orderNo") String orderNo,@Param("supplierNo") String supplierNo,@Param("preOrderStatus") String preOrderStatus,@Param("deliverGoodsStatus") String deliverGoodsStatus);

    int placeOrder(Integer id);

    List<MaterialListResp> getMaterialList(@Param("orderId") String orderId, @Param("supplierNo") String supplierNo);

    ShipmentRemarkResp getMaterialDeliverInfo(Integer materialStatusId);

    List<MaterialManageResp> getMaterialManageInfoList(@Param("materialNo") String materialNo, @Param("materialClass") String materialClass, @Param("supplierId") String supplierId);

    int addMaterialInfo(MaterialManageResp materialManageResp);

    MaterialManageResp getMaterialInfoDetail(Integer id);

    int modifyMaterialInfo(MaterialManageResp materialManageResp);

    int deleteMaterialInfo(Integer id);

    List<RewardHistoryResp> getRewardHistoryList(@Param("userName") String userName, @Param("rewardStatus") String rewardStatus);

    int deleteRewardHistory(Integer id);

    int checkSupervisionStatus(String orderId);

    int checkManagerStatus(String orderId);

    List<BillResp> getBillList(@Param("orderId") String orderId, @Param("identification") String identification,
                               @Param("type") String type, @Param("payType") String payType);

    int deleteBillInfo(int id);

    void addBillLog(BillResp billResp);

    String getPhoneByMaterialId(int id);
}
